#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <string.h>
#include <errno.h>
int main()
{
  int pipe_fd[2];
  pid_t pid;
  char r_buf[100];
  char w_buf[100];
  char *p_wbuf;
  int r_num;
  int cmd;
  memset(r_buf,0,sizeof(r_buf));
  memset(w_buf,0,sizeof(w_buf));
  p_wbuf=w_buf;
  if(pipe(pipe_fd)<0)
  {
    printf("pipe create error \n");
    return -1;
  }
  if((pid=fork())==0)
  {
    printf("");
    close(pipe_fd[1]);
    sleep(3);
    r_num=read(pipe_fd[0],r_buf,100);
    printf("read num is %d  the date read form the pipe is %d \n  .\n",r_num,atoi(r_buf));
    printf("%s\n",r_buf);
    
    close(pipe_fd[0]);
    //exit();
    
  }
  else if (pid >0)
  {
    close(pipe_fd[0]);
    strcpy(w_buf,"hello world");
    if(write(pipe_fd[1],w_buf,strlen(w_buf))!=-1)
       printf("parent write over");
    close(pipe_fd[1]);
    printf("parent close fd[1] over ");
    sleep(10);
  }
  
}
